package cn.tedu.shoot;

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;

public class Hero {
    int x,y;
    int life,magic;
    int fire;
    int score,gold;
    Image image;
    Image[] imgs = new Image[10];

    public Hero(){
        x=200;
        y=600;
        life=100;
        magic=100;
        fire=2;
        score=0;
        gold=0;
        image = new ImageIcon("plane/ws00.png").getImage();
        for (int i = 0; i < imgs.length; i++) {
            imgs[i] = new ImageIcon("plane/ws0"+i+".png").getImage();
        }
    }
    //用于表示英雄机的动态效果
    /***
     * 给Hero类增加的一个Image[]的属性，并初始化若干个图片放入该数组
     * step()每一次调用的时候，都会从数组中取出下一张图片，赋值给img属性。
     */
    int index=0;
    //图片切换方法
    public void step(){
        image = imgs[index++/10% imgs.length];
    }

    private long lastShootTime = 0;       // 记录上次发射的时间戳（毫秒）
    private final long SHOOT_COOLDOWN = 300; // 冷却时间300毫秒（0.3秒）
    public List<Bullet> shoot(){
        List<Bullet> bullets = new ArrayList<Bullet>();
        long currentTime = System.currentTimeMillis(); // 获取当前系统时间

        // 检查时间差：当前时间 - 上次发射时间 < 冷却时间 → 禁止发射
        if (currentTime - lastShootTime < SHOOT_COOLDOWN) {
            return bullets; // 直接返回空列表（不生成新子弹）
        }

        lastShootTime = currentTime; // 更新最后一次发射时间为当前时间

        if (fire == 1){
            Bullet bullet = new Bullet(x+image.getWidth(null)/2,y);

            bullets.add(bullet);
        }
        if(fire==2){
            Bullet bullet1 = new Bullet(x,y);
            Bullet bullet2 = new Bullet(x+image.getWidth(null),y);
            bullets.add(bullet1);
            bullets.add(bullet2);
        }
        return bullets;
    }
    public void shootEnemey(){}
    public void hitAward(){

    }
}
